NEWS
新闻中心
[AUTOSAR通信] - PDUR模块解读
发布时间:2025-07-07 浏览数:214



01
PDUR模块概述



在AUTOSAR(汽车开放系统架构)通信体系里,,,PDUR模块堪称通信服务的关键枢纽。。。。对于想要深入了解AUTOSAR通信的工程师、、学生或爱好者而言,,,PDUR模块是无法绕过的重要环节。。。。

从整个通信协议栈的架构来看,,,,PDUR模块处于承上启下的核心位置,,犹如一座桥梁,,,,紧密连接着上层模块与下层接口模块或传输层模块,,负责I -PDU(接口协议数据单元)的高效传输,,,扮演着内部消息路由器的关键角色。。

具体而言,,,当底层传输层或者Interface抽象层将I-PDU传输给PduR时,,PduR就像一位精准的“快递员”,,,迅速且准确地将这些数据单元传递到对应的服务模块。。。而当上层服务模块有I-PDU需要发送时,,,,PduR又能及时接手,,,将消息顺畅地传输到相应的传输层或Interface抽象层。。。



依据在 AUTOSAR 架构中的位置与传输 I-PDU 时的角色,,,通信模块可分为三类:上层模块、、、下层接口模块和下层传输层模块。。。而PduR模块则是连接这些模块的枢纽,,位于上层模块和下层模块之间,,,,充当一个消息中转站。。

  • 上层模块位于 PduR 上层,,一般包括 Com、、、、 Dcm 和 Cdd。。。。

  • 下层接口模块位于 PduR 下层,,,,一般包括 CanIf、、、 LinIf、、、、 SoAdIf、、 FrIf、、 CddIf 等。。。。

  • 下层传输层模块同样位于 PduR 下层,,一般包括 CanTp、、、、 LinTp、、、FlexRayTp 和 J1939Tp 等。。

PDUR 模块工作时通过配置维护一张路由表,,,,这张路由表犹如城市交通地图,,,清晰地规划着每个 PDU(协议数据单元)的 “出行路线”。。
表内的每一条路径,,,都精准描述了一个 PDU 的发送或接收行程。。。。值得注意的是,,,,每条路径都仅有一个明确的源头,,,但目的地却可以是一个,,也可能是多个。。。并且,,,接收路径与发送路径彼此相互独立。。。

当系统进行 PDU 的收发操作时,,,,就如同快递员依据包裹上的收件地址派送快递一样,,,,它会依据 PDU ID 这个 “地址标签”,,迅速找到对应的路径以及目的地。。随后,,系统会调用相应模块的接口来完成数据传递。。。。倘若遇到一对多的情况,,,即一个源头对应多个目的地,,系统便会像多次派送不同地址包裹的快递员一样,,,多次调用相应接口,,确保每个目的地都能准确无误地收到 PDU。。




02
功能描述



接下来的示例尊龙时凯均以CAN总线为例





发送路由功能





TxPdu 的发送存在两种方式,,即 IF 和 TP。。在 PduR 模块中,,能够实现 TP PDU 的 1:1 发送路由,,,以及 IF PDU 的 1:N 路由。。。。借助 PduR 模块的路由配置,,,可向上层屏蔽网络的具体细节,,让上层模块能将精力集中于 TxPdu 报文数据的封装工作。。。

  • IF路由的流程可以参考下图,,,其下层模块位CanIf(CAN总线)




  • TP路由的流程可以参考下图,,,,其下层模块位CanIf(CAN总线)




  • 数据发送完成后,,下层模块需要有发送确认来通知上层模块数据发送完成,,,,以便于更进一步的处理,,,该过程自下而上








接收路由功能





RxPdu 的接收也有 IF 和 TP 两种方式。。。。当 PDU 从下层模块接收到后,,,,会依据 PduR 配置的路由路径传递到上层模块。。。。这样上层模块无需关注网络细节,,只需专注于接收 PDU 的解析。。

下图所示为数据包的接收过程,,,由下层CanIf模块调用PduR_RxIndication()通知到PduR模块,,,PduR模块根据路径进一步找到其上层模块Com,,,,进而调用Com_RxIndication()将数据包传输至上层模块Com








网关路由功能





PDU 的网关同样分为 IF 和 TP 两种方式。。IF 网关支持 1:N 的转发,,,,而 TP 网关仅支持 1:1 的 PDU 网关,,且在这个过程中不涉及任何报文数据的变化,,,收发报文速率保持一致。。。需要特别注意的是,,,PDU 的网关不能将 IF 和 TP 混淆,,,,也就是说接收 IF PDU 只能通过发送 IF PDU 进行转发,,接收 TP PDU 只能通过 TP PDU 进行转发。。。。

如下图所示为一个PDU数据包从CAN总线1路由到CAN总线2的过程







路由控制功能




PduR 的路由控制是以 RoutingPathGroup 为单位来进行 Enable/Disable 控制的。。。。RoutingPathGroup 关联 N 个 PduRDestPdu,,,从而控制这些 PduRDestPdu 的使能状态。。。。RoutingPathGroup 通过配置项 PduRIsEnabledAtInit 来决定初始化之后其关联的所有 PduRDestPdu 处于 Enable 还是 Disable 状态。。。。在运行时,,,,可通过调用 PduR_EnableRouting/ PduR_DisableRouting来控制 RoutingPathGroup 及其包含的 PduRDestPdu 的使能状态。。。。未被 RoutingPathGroup 关联的 PduRDestPdu 在初始化之后状态一直为 Enable,,,且不可改变。。。。




03
配置項介紹



本章节的配置项截图均来自EasySAR网页端的配置工具





PduRBswModules





该容器主要用来配置PduR的上下级模块,,,用到哪些模块就添加哪些模块,,,,比如Com、、、、CanIf、、、CanTp、、、、Dcm等








PduRGeneral





配置PduR模块的一些通用配置








PduRRoutingTables





该项主要是创建一个路由表,,其下边可以配置多条路径PduRRoutingPath







PduRRoutingPath





该配置项主要是用于配置一条路由路径,,,引用一个源头,,,及一个(或多个)目的地,,用于Pdu的转发。。。







PduRSrcPdu





主要用来配置某一条路径的源头,,,,通过与其源头模块引用同一个Pdu来建设起映射关系








PduRDestPdu





主要用来配置某一条路径的目的地,,,通过与其目的模块引用同一个Pdu来建设起映射关系







04
总结



总结一下,,PduR的核心配置是,,,路由路径的配置,,,,每条路径包含源头和目的地,,,,通过将源头和目的地上下层模块关联到ECUC模块中配置的同一个Pdu来建立起映射关系,,,,通过源头的Pdu Id查找到对应路径及目标模块,,达到转发的效果。。

因篇幅问题,,,关于PduR模块的主要配置就介绍到这里。。。。毕竟,,,光是嘴上说,,始终如同纸上谈兵。。。强烈建议想要了解完整的模块配置,,,,可以通过配置工具亲自上手配置一番。。

参考文档:Specification of PDU Router. AUTOSAR, 4.2.2

服务热线:

0551-65691812

地址:合肥高新区安徽工业技术创新研究院A座
邮箱:gk.anghui@outlook.com

Copyright © 2001-2025 安徽国科尊龙时凯科技有限公司 - All Rights Reserved.
皖ICP备2024030710号-1  
站点地图